package com.farmer.common.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 农业专家实体类
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("agri_expert")
public class AgriExpert {

    /**
     * 专家ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 专家编号
     */
    @TableField("expert_no")
    private String expertNo;

    /**
     * 专家姓名
     */
    @TableField("name")
    private String name;

    /**
     * 性别：0-未知，1-男，2-女
     */
    @TableField("gender")
    private Integer gender;

    /**
     * 联系电话
     */
    @TableField("phone")
    private String phone;

    /**
     * 邮箱
     */
    @TableField("email")
    private String email;

    /**
     * 头像
     */
    @TableField("avatar")
    private String avatar;

    /**
     * 职称（如：高级农艺师、教授等）
     */
    @TableField("title")
    private String title;

    /**
     * 所属机构
     */
    @TableField("organization")
    private String organization;

    /**
     * 专业领域，多个用逗号分隔
     */
    @TableField("specialties")
    private String specialties;

    /**
     * 个人简介
     */
    @TableField("introduction")
    private String introduction;

    /**
     * 教育背景
     */
    @TableField("education")
    private String education;

    /**
     * 工作经历
     */
    @TableField("work_experience")
    private String workExperience;

    /**
     * 主要成就
     */
    @TableField("achievements")
    private String achievements;

    /**
     * 咨询费用（元/小时）
     */
    @TableField("consultation_fee")
    private BigDecimal consultationFee;

    /**
     * 专家评分
     */
    @TableField("rating")
    private BigDecimal rating;

    /**
     * 评分人数
     */
    @TableField("rating_count")
    private Integer ratingCount;

    /**
     * 咨询次数
     */
    @TableField("consultation_count")
    private Integer consultationCount;

    /**
     * 授课次数
     */
    @TableField("course_count")
    private Integer courseCount;

    /**
     * 状态：AVAILABLE-可咨询，BUSY-忙碌，OFFLINE-离线
     */
    @TableField("available_status")
    private String availableStatus;

    /**
     * 是否认证：0-未认证，1-已认证
     */
    @TableField("is_verified")
    private Integer isVerified;

    /**
     * 账号状态：0-禁用，1-启用
     */
    @TableField("status")
    private Integer status;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
} 